/**
 * 环境配置管理器
 */
export class EnvironmentConfig {
  /**
   * 获取分析数据路径
   */
  static getAnalysisDataPath(): string {
    return import.meta.env.VITE_ANALYSIS_DATA_PATH || '/analysis/test-analysis.json';
  }

  /**
   * 获取应用标题
   */
  static getAppTitle(): string {
    return import.meta.env.VITE_APP_TITLE || '项目依赖关系分析工具';
  }

  /**
   * 获取应用版本
   */
  static getAppVersion(): string {
    return import.meta.env.VITE_APP_VERSION || '1.0.0';
  }

  /**
   * 获取缓存过期时间（分钟）
   */
  static getCacheExpireTime(): number {
    const env = import.meta.env.VITE_CACHE_EXPIRE_TIME;
    return env ? parseInt(env, 10) : 5; // 默认5分钟
  }

  /**
   * 是否启用缓存
   */
  static isCacheEnabled(): boolean {
    const env = import.meta.env.VITE_ENABLE_CACHE;
    return env !== 'false'; // 默认启用
  }

  /**
   * 获取所有环境变量配置
   */
  static getConfig() {
    return {
      analysisDataPath: this.getAnalysisDataPath(),
      appTitle: this.getAppTitle(),
      appVersion: this.getAppVersion(),
      cacheExpireTime: this.getCacheExpireTime(),
      cacheEnabled: this.isCacheEnabled(),
      isDevelopment: import.meta.env.DEV,
      isProduction: import.meta.env.PROD,
      mode: import.meta.env.MODE,
    };
  }

  /**
   * 打印配置信息（用于调试）
   */
  static logConfig() {
    const config = this.getConfig();
    console.group('🔧 环境配置信息');
    console.log('📊 分析数据路径:', config.analysisDataPath);
    console.log('🏷️ 应用标题:', config.appTitle);
    console.log('📝 应用版本:', config.appVersion);
    console.log('💾 缓存过期时间:', `${config.cacheExpireTime}分钟`);
    console.log('🔄 缓存状态:', config.cacheEnabled ? '启用' : '禁用');
    console.log('🌍 运行模式:', config.mode);
    console.log('🚧 开发模式:', config.isDevelopment);
    console.log('🚀 生产模式:', config.isProduction);
    console.groupEnd();
  }
}
